package com.fdb.efp.esb.service.bo.resp.hj;

import com.alibaba.fastjson.annotation.JSONField;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Objects;

/**
 * 需求编号:【】
 * 问题编号:【】
 * 开发人员：chenxuan
 * 创建日期：2019/5/9 11:22
 * 功能描述：互金接口返回还款计划信息
 *
 * @version 0.1
 */
public class AcctDtlInfBean implements Serializable {
    private static final long serialVersionUID = 1L;
    /** 计划序号*/
    @JSONField(name="PlanSrlNo")
    private String PlanSrlNo;

    /** 账户主键*/
    @JSONField(name="AcctKwd")
    private String AcctKwd;

    /** 还款期次*/
    @JSONField(name="RpyTime")
    private String RpyTime;

    /** 金额类型*/
    @JSONField(name="AmtType")
    private String AmtType;

    /** 起始日期*/
    @JSONField(name="StartDt")
    private String StartDt;

    /** 终止日期*/
    @JSONField(name="EndDt")
    private String EndDt;
    
    /** 计划金额*/
    @JSONField(name="PlanAmt")
    private double PlanAmt;

    /** 出单金额*/
    @JSONField(name="IssueAmt")
    private double IssueAmt;

    /** 优惠金额*/
    @JSONField(name="PrefAmt")
    private double PrefAmt;

    /** 实还金额*/
    @JSONField(name="ActRpyAmt")
    private double ActRpyAmt;

    /** 计划本金*/
    @JSONField(name="PlanPrin")
    private double PlanPrin;

    /** 计划利息*/
    @JSONField(name="PlanInt")
    private double PlanInt;

    /** 出单本金*/
    @JSONField(name="IssuePrin")
    private double IssuePrin;

    /** 出单利息*/
    @JSONField(name="IssueInt")
    private double IssueInt;

    /** 出单罚息*/
    @JSONField(name="IssuePnyInt")
    private double IssuePnyInt;

    /** 出单复利*/
    @JSONField(name="IssueCmpdInt")
    private double IssueCmpdInt;

    /** 出单逾期罚息*/
    @JSONField(name="IssueOvduePnyInt")
    private double IssueOvduePnyInt;

    /** 出单逾期复利*/
    @JSONField(name="IssueOvdueCmpdInt")
    private double IssueOvdueCmpdInt;

    /** 优惠本金*/
    @JSONField(name="PrefPrin")
    private double PrefPrin;

    /** 优惠利息*/
    @JSONField(name="PrefInt")
    private double PrefInt;

    /** 优惠罚息*/
    @JSONField(name="PrefPnyInt")
    private double PrefPnyInt;

    /** 优惠复利*/
    @JSONField(name="PrefCmpdInt")
    private double PrefCmpdInt;

    /** 优惠逾期罚息*/
    @JSONField(name="PrefOvduePnyInt")
    private double PrefOvduePnyInt;

    /** 优惠逾期复利*/
    @JSONField(name="PrefOvdueCmpdInt")
    private double PrefOvdueCmpdInt;

    /** 实还本金*/
    @JSONField(name="ActRpyPrin")
    private double ActRpyPrin;

    /** 实还利息*/
    @JSONField(name="ActRpyInt")
    private double ActRpyInt;

    /** 实还罚息*/
    @JSONField(name="ActRpyPnyInt")
    private double ActRpyPnyInt;

    /** 实还复利*/
    @JSONField(name="ActRpyCmpdInt")
    private double ActRpyCmpdInt;

    /** 实还逾期罚息*/
    @JSONField(name="ActRpyOvduePnyInt")
    private double ActRpyOvduePnyInt;

    /** 实还逾期复利*/
    @JSONField(name="ActRpyOvdueCmpdInt")
    private double ActRpyOvdueCmpdInt;

    /**
     * 	已计提罚息	(30,2)
     */
    @JSONField(name = "AlrdyPrvnPnyInt")
    private BigDecimal alrdyPrvnPnyInt;
    /**
     * 	已计提复利	(30,2)
     */
    @JSONField(name = "AlrdyPrvnCmpdInt")
    private BigDecimal alrdyPrvnCmpdInt;

    /**
     * 	宽限期	(8)
     */
    @JSONField(name = "GrcPrd")
    private String GrcPrd;

    public String getPlanSrlNo() {
        return PlanSrlNo;
    }

    public void setPlanSrlNo(String planSrlNo) {
        PlanSrlNo = planSrlNo;
    }

    public String getAcctKwd() {
        return AcctKwd;
    }

    public void setAcctKwd(String acctKwd) {
        AcctKwd = acctKwd;
    }

    public String getRpyTime() {
        return RpyTime;
    }

    public void setRpyTime(String rpyTime) {
        RpyTime = rpyTime;
    }

    public String getAmtType() {
        return AmtType;
    }

    public void setAmtType(String amtType) {
        AmtType = amtType;
    }

    public String getStartDt() {
        return StartDt;
    }

    public void setStartDt(String startDt) {
        StartDt = startDt;
    }

    public String getEndDt() {
        return EndDt;
    }

    public void setEndDt(String endDt) {
        EndDt = endDt;
    }

    public double getPlanAmt() {
        return PlanAmt;
    }

    public void setPlanAmt(double planAmt) {
        PlanAmt = planAmt;
    }

    public double getIssueAmt() {
        return IssueAmt;
    }

    public void setIssueAmt(double issueAmt) {
        IssueAmt = issueAmt;
    }

    public double getPrefAmt() {
        return PrefAmt;
    }

    public void setPrefAmt(double prefAmt) {
        PrefAmt = prefAmt;
    }

    public double getActRpyAmt() {
        return ActRpyAmt;
    }

    public void setActRpyAmt(double actRpyAmt) {
        ActRpyAmt = actRpyAmt;
    }

    public double getPlanPrin() {
        return PlanPrin;
    }

    public void setPlanPrin(double planPrin) {
        PlanPrin = planPrin;
    }

    public double getPlanInt() {
        return PlanInt;
    }

    public void setPlanInt(double planInt) {
        PlanInt = planInt;
    }

    public double getIssuePrin() {
        return IssuePrin;
    }

    public void setIssuePrin(double issuePrin) {
        IssuePrin = issuePrin;
    }

    public double getIssueInt() {
        return IssueInt;
    }

    public void setIssueInt(double issueInt) {
        IssueInt = issueInt;
    }

    public double getIssuePnyInt() {
        return IssuePnyInt;
    }

    public void setIssuePnyInt(double issuePnyInt) {
        IssuePnyInt = issuePnyInt;
    }

    public double getIssueCmpdInt() {
        return IssueCmpdInt;
    }

    public void setIssueCmpdInt(double issueCmpdInt) {
        IssueCmpdInt = issueCmpdInt;
    }

    public double getIssueOvduePnyInt() {
        return IssueOvduePnyInt;
    }

    public void setIssueOvduePnyInt(double issueOvduePnyInt) {
        IssueOvduePnyInt = issueOvduePnyInt;
    }

    public double getIssueOvdueCmpdInt() {
        return IssueOvdueCmpdInt;
    }

    public void setIssueOvdueCmpdInt(double issueOvdueCmpdInt) {
        IssueOvdueCmpdInt = issueOvdueCmpdInt;
    }

    public double getPrefPrin() {
        return PrefPrin;
    }

    public void setPrefPrin(double prefPrin) {
        PrefPrin = prefPrin;
    }

    public double getPrefInt() {
        return PrefInt;
    }

    public void setPrefInt(double prefInt) {
        PrefInt = prefInt;
    }

    public double getPrefPnyInt() {
        return PrefPnyInt;
    }

    public void setPrefPnyInt(double prefPnyInt) {
        PrefPnyInt = prefPnyInt;
    }

    public double getPrefCmpdInt() {
        return PrefCmpdInt;
    }

    public void setPrefCmpdInt(double prefCmpdInt) {
        PrefCmpdInt = prefCmpdInt;
    }

    public double getPrefOvduePnyInt() {
        return PrefOvduePnyInt;
    }

    public void setPrefOvduePnyInt(double prefOvduePnyInt) {
        PrefOvduePnyInt = prefOvduePnyInt;
    }

    public double getPrefOvdueCmpdInt() {
        return PrefOvdueCmpdInt;
    }

    public void setPrefOvdueCmpdInt(double prefOvdueCmpdInt) {
        PrefOvdueCmpdInt = prefOvdueCmpdInt;
    }

    public double getActRpyPrin() {
        return ActRpyPrin;
    }

    public void setActRpyPrin(double actRpyPrin) {
        ActRpyPrin = actRpyPrin;
    }

    public double getActRpyInt() {
        return ActRpyInt;
    }

    public void setActRpyInt(double actRpyInt) {
        ActRpyInt = actRpyInt;
    }

    public double getActRpyPnyInt() {
        return ActRpyPnyInt;
    }

    public void setActRpyPnyInt(double actRpyPnyInt) {
        ActRpyPnyInt = actRpyPnyInt;
    }

    public double getActRpyCmpdInt() {
        return ActRpyCmpdInt;
    }

    public void setActRpyCmpdInt(double actRpyCmpdInt) {
        ActRpyCmpdInt = actRpyCmpdInt;
    }

    public double getActRpyOvduePnyInt() {
        return ActRpyOvduePnyInt;
    }

    public void setActRpyOvduePnyInt(double actRpyOvduePnyInt) {
        ActRpyOvduePnyInt = actRpyOvduePnyInt;
    }

    public double getActRpyOvdueCmpdInt() {
        return ActRpyOvdueCmpdInt;
    }

    public void setActRpyOvdueCmpdInt(double actRpyOvdueCmpdInt) {
        ActRpyOvdueCmpdInt = actRpyOvdueCmpdInt;
    }

    public BigDecimal getAlrdyPrvnPnyInt() {
        if (Objects.isNull(alrdyPrvnPnyInt)) {
            return BigDecimal.ZERO;
        }
        return alrdyPrvnPnyInt;
    }

    public void setAlrdyPrvnPnyInt(BigDecimal alrdyPrvnPnyInt) {
        this.alrdyPrvnPnyInt = alrdyPrvnPnyInt;
    }

    public BigDecimal getAlrdyPrvnCmpdInt() {
        if (Objects.isNull(alrdyPrvnCmpdInt)) {
            return BigDecimal.ZERO;
        }
        return alrdyPrvnCmpdInt;
    }

    public void setAlrdyPrvnCmpdInt(BigDecimal alrdyPrvnCmpdInt) {
        this.alrdyPrvnCmpdInt = alrdyPrvnCmpdInt;
    }

    public String getGrcPrd() {
        return GrcPrd;
    }

    public void setGrcPrd(String grcPrd) {
        GrcPrd = grcPrd;
    }
}
